
<!DOCTYPE html>
<html lang="en-us">
<head>
  
  <meta charset="UTF-8" />
  <meta name="description" content="常用的docker操作, Docker：清理Docker占用的磁盘空间" />
  <title>
    Docker：清理Docker占用的磁盘空间 | DenysG的个人博客
  </title>
  
  <meta name="viewport" content="width=device-width,user-scalable=no,maximum-scale=1,initial-scale=1">
  
  <link rel="canonical" href="https://48474.net/post/docker-prune/"/>
  <link rel="shortcut icon" type="image/x-icon" href="/favicon.ico">
  
  <link rel="stylesheet" href="/css/sanitize.css">
  <link rel="stylesheet" href="/css/responsive.css">
  <link rel="stylesheet" href="/css/highlight_monokai.css">
  <link rel="stylesheet" href="/css/theme.css">
  <link rel="stylesheet" href="/css/custom.css">
  
  
  <link href="https://48474.net//index.xml" rel="alternate" type="application/rss+xml" title="DenysG的个人博客" />
  <link href="https://48474.net//index.xml" rel="feed" type="application/rss+xml" title="DenysG的个人博客" />

  
  

</head>



<body>
<div class="container">
  
  <header role="banner">
    <div class="row gutters">
      <div id="site-title" class="col span_6">
        <h1><a href="https://48474.net/">DenysG的个人博客</a></h1>
        <h2>我必须承认，幸运喜欢照顾勇敢的人。---- 达尔文</h2>
      </div>
      <div id="social" class="col span_6">
        <ul>
          
          
          <li><a href="https://github.com/cnphpbb/" target="_blank">GitHub</a></li>
          
        </ul>
      </div>
    </div>
  </header>


  
  <main id="single" role="main">
    <div class="article-header">
      <h1>Docker：清理Docker占用的磁盘空间</h1>
      <div class="meta">
        Jul 2, 2021 &nbsp;
        
          #<a href="/tags/docker">docker</a>&nbsp;
        
          #<a href="/tags/guide">guide</a>&nbsp;
        
      </div>
    </div>
    <article>
      <p>现整理出一些常用的 <strong>清理Docker占用的磁盘空间</strong> 指令，方便查找。</p>
<p><strong>官方CLI网址 - <a href="https://docs.docker.com/engine/reference/commandline/cli/">Docker CLI</a></strong></p>
<blockquote>
<p><strong>Docker</strong> 好， <strong>Docker化</strong> 好！ 好！ 好！</p>
</blockquote>
<h3 id="容器清理">容器清理</h3>
<ul>
<li><strong><code>docker container prune</code></strong> : 仅删除停止运行的容器。</li>
<li><strong><code>docker rm -f $(docker ps -aq)</code></strong> : 删除所有容器（包括停止的、正在运行的）。</li>
<li><strong><code>docker container rm -f $(docker container ls -aq)</code></strong>:  同上。</li>
</ul>
<h3 id="镜像清理">镜像清理</h3>
<p><strong><code>docker rmi &lt;image id&gt;</code></strong> ：通过镜像的id来删除指定镜像。</p>
<p>有一些镜像是隐形的：</p>
<ul>
<li>子镜像，就是被其他镜像引用的中间镜像，不能被删除。</li>
<li>悬挂状态的镜像，就是不会再被使用的镜像，可以被删除。</li>
</ul>
<p>其他命令：</p>
<ul>
<li><strong><code>docker image ls -f dangling=true</code></strong>:  可以列出所有悬挂状态的镜像.<br>
并使用命令 <code>docker image rm $(docker image ls -f dangling=true -q)</code> 或 <code>docker image prune</code> 进行删除。</li>
<li><strong><code>docker image rm $(docker image ls -q)</code></strong> ：删除所有镜像。但正在被容器使用的镜像无法删除。</li>
</ul>
<h3 id="数据卷清理">数据卷清理</h3>
<ul>
<li><strong><code>docker volume rm $(docker volume ls -q)</code></strong> ：删除不再使用的数据卷。</li>
<li><strong><code>docker volume prune</code></strong> ：同上。</li>
</ul>
<h3 id="缓存清理">缓存清理</h3>
<p><strong>Docker 18.09</strong> 引入了 <strong>BuildKit</strong> ，提升了构建过程的性能、安全、存储管理等能力。<br>
<strong><code>docker builder prune</code></strong> ：删除 build cache。</p>
<h3 id="一键清理">一键清理</h3>
<p><strong><code>docker system df</code></strong> 命令，类似于 <strong>Linux</strong>上的 <strong>df</strong> 命令，用于查看 <strong>Docker</strong> 的磁盘使用情况：</p>
<p><img src="https://imgs.7y2.org/20210703040827.png" alt="docker system df"></p>
<p><strong>TYPE</strong>列出了 <strong>Docker</strong> 使用磁盘的 4 种类型：</p>
<ul>
<li><strong>Images</strong> ：所有镜像占用的空间，包括拉取下来的镜像，和本地构建的。</li>
<li><strong>Containers</strong> ：运行的容器占用的空间，表示每个容器的读写层的空间。</li>
<li><strong>Local Volumes</strong> ：容器挂载本地数据卷的空间。</li>
<li><strong>Build Cache</strong> ：镜像构建过程中产生的缓存空间（只有在使用 BuildKit 时才有，Docker 18.09 以后可用）。</li>
</ul>
<p>最后的 RECLAIMABLE 是可回收大小。</p>
<ul>
<li><strong><code>docker system prune</code></strong> : 可以用于清理磁盘，删除关闭的容器、无用的数据卷和网络，以及 dangling 镜像（即无 tag 的镜像）。</li>
<li><strong><code>docker system prune -a</code></strong> : 清理得更加彻底，可以将没有容器使用 <strong>Docker</strong> 镜像都删掉。</li>
</ul>
<blockquote>
<p>注意，这两个命令会把你暂时关闭的容器，以及暂时没有用到的 Docker 镜像都删掉了。</p>
</blockquote>

      
      
      
    </article>
    


  </main>
  
  <nav class="pagination-single">
    
      <span class="previous">&larr; <a href="https://48474.net/post/waht_it_socket/" rel="prev">什么是SOCKET ？ Socket - TCP 篇</a></span>
    
    
      <span class="next"><a href="https://48474.net/post/gitmoji-210902/" rel="next">Gitmoji &amp; 代码</a> &rarr;</span>
    
  </nav>


  
  <footer role="contentinfo">
    <div style="text-align:center;">
      
      © 2020 135Get_Team. All rights reserved.
    </div>
  </footer>


</div>

<script src="/js/highlight.pack.js"></script>
<script>hljs.initHighlightingOnLoad();</script>



</body>
</html>

